![]() method for power control of central processing unit, wireless device and computer-readable memory
专利摘要:
SYSTEM AND METHOD FOR CONTROLLING THE ENERGY OF CENTRAL PROCESSING UNIT BASED ON PARALLELISM OF INFERENCED WORKLOAD. A method of dynamic power control within a multi-core CPU is described and may include receiving a degree of parallelism in a zero-core workload and determining whether the degree of parallelism in the zero-core workload is equal to a first active condition. Additionally, the method may include determining a length of time for which the first active condition is satisfied when the degree of parallelism in the zero core workload is equal to the first active condition and determining whether the time duration is equal to a first active condition confirmed. The method can also include invoking an operating system to power a first core when the time duration is equal to the first confirmed active condition. 公开号:BR112012014308B1 申请号:R112012014308-5 申请日:2010-11-24 公开日:2021-01-19 发明作者:Bohuslav Rychlik;Robert A. Glenn;Ali Iranli;Brian J. Salsbery;Sumit Sur;Steven S. Thomson 申请人:Qualcomm Incorporated; IPC主号:
专利说明:
Related Requests [0001] The present application claims priority of provisional patent application US No. 61 / 286,953, entitled “SYSTEM AND METHOD OF DYNAMICALLY CONTROLLING A PLURALITY OF CORES IN A MULTICORE CENTRAL PROCESSING UNIT”, filed on December 16, 2009, the content being fully incorporated by reference. Description of the Prior Art [0002] Portable computing devices (PCDs) are ubiquitous. These devices can include cell phones, portable digital assistants (PDAs), handheld game consoles, palmtop computers, and other portable electronic devices. In addition to the primary function of these devices, they may include peripheral functions. For example, a cell phone may include the primary function of making cell phone calls and the peripheral functions of a static camera, a video camera, global positioning system (GPS) navigation, network navigation, sending and receiving e- email, send and receive text messages, press-to-speak capabilities, etc. As the functionality of such a device increases, the processing power required to support such functionality also increases. Additionally, as computing power increases, there is a greater need to effectively manage the processor, or processors, that provide computing power. [0003] Accordingly, what is needed is an improved method to control the energy inside a multi-core CPU. Brief Description of Drawings [0004] In the figures, similar numerical references refer to similar parts by all views unless otherwise indicated. [0005] Figure 1 - is a front plan view of a first aspect of a portable computing device (PCD) in a closed position. [0006] Figure 2 - is a front plan view of the first aspect of a PCD in an open position. [0007] Figure 3 - is a block diagram of a second aspect of a PCD. [0008] Figure 4 - is a block diagram of a processing system. [0009] Figure 5 - is a flowchart illustrating a first aspect of a method for dynamic energy control within a multi-core CPU. [0010] Figure 6 - is a flowchart illustrating a second aspect of a method for dynamic energy control within a multi-core CPU. [0011] Figure 7 - is a flowchart illustrating a third aspect of a method for dynamic energy control within a multi-core CPU. [0012] Figure 8 - is a flowchart illustrating a fourth aspect of a method for dynamic energy control within a multi-core CPU. [0013] Figure 9 - is a flowchart illustrating a first part of a fifth aspect of a method for dynamic energy control within a multi-core CPU. [0014] Figure 10 - is a flowchart illustrating a second part of a fifth aspect of a method for controlling dynamic energy within a multi-core CPU. [0015] Figure 11 - is a flowchart illustrating a third part of a fifth aspect of a method for dynamic energy control within a multi-core CPU. [0016] Figure 12 - is a flowchart illustrating a fourth part of a fifth aspect of a method for dynamic energy control within a multi-core CPU. [0017] Figure 13 - is a flowchart illustrating a method of testing a multi-core CPU. [0018] Figure 14 - is a flowchart illustrating a sixth aspect of a method for controlling dynamic energy within a multi-core CPU. Detailed Description of the Invention [0019] The term "illustrative" is used here to mean "serving as an example, case or illustration". Any aspect described here as "illustrative" should not necessarily be considered, as preferred or advantageous over other aspects. [0020] In this description, the term "application" can also include files containing executable content, such as: object code, scripts, byte code, markup language files, and amendments. In addition, an "application" referred to here, may also include files that are not executable in nature, such as documents that may need to be opened or other data files that need to be accessed. [0021] The term "content" can also include files containing executable content, such as: object code, scripts, byte code, markup language files, and amendments. In addition, "content" as referred to here, may also include files that are not executable in nature, such as documents that need to be opened or other data files that need to be accessed. [0022] As used in this description, the terms "component", "database", "module", "system" and the like must refer to a computer-related entity, ie, hardware, firmware, a combination of hardware and software, software, or running software. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable, a chain of execution, a program and / or a computer. By way of illustration, both an application running on a computer device and the computer device can be a component. One or more components can reside within a process and / or sequence of execution, and a component can be located on a computer and / or distributed between two or more computers. In addition, these components can be executed from various computer-readable media having several data structures stored therein. Components can communicate via local and / or remote processes such as according to a signal having one or more data packets (for example, data from a component interacting with other components in a local system, distributed system, and / or over a network such as the Internet with other systems using a signal). [0023] With reference initially to Figure 1 and Figure 2, an illustrative portable computing device (PCD) is illustrated and is generally referred to as 100. As illustrated, PCD 100 may include a housing 102. Housing 102 may include a upper part of the housing 104 and a lower part of the housing 106. Figure 1 illustrates that the upper part of the housing 104 can include a screen 108. In a particular aspect, the screen 108 can be a touch screen. The upper part of the housing 104 can also include a trackball type 110 input device. Additionally, as illustrated in Figure 1, the upper part of the housing 104 can include a power button 112 and an power button 114. As shown in Figure 1, the upper part of the housing 104 of the PCD 100 may include a plurality of indicator lights 116 and a speaker 118. Each indicator light 116 may be a light emitting diode (LED). [0024] In a particular aspect, as shown in Figure 2, the upper part of the housing 104 is movable with respect to the lower part of the housing 106. Specifically, the upper part of the housing 104 can be slidable with respect to the lower part of the housing 106 As illustrated in Figure 2, the bottom of housing 106 may include a multi-button keyboard 120. In a particular aspect, the multi-button keyboard 120 may be a standard QWERTY keyboard. The multi-button keypad 120 can be revealed when the upper part of the housing 104 is moved with respect to the lower part of the housing 106. Figure 2 also illustrates that the PCD 100 can include a reset button 122 at the bottom of the housing 106. [0025] With reference to Figure 3, an illustrative non-limiting aspect of a PCD is illustrated and is generally referred to as 320. As illustrated, PCD 320 includes an on-chip system 322 that includes a multi-core CPU 324. The CPU multi-core 324 can include a zero core 325, a first core 326, and a Nésimo327 core. [0026] As illustrated in Figure 3, a display controller 328 and a touchscreen controller 330 are coupled to the multi-core CPU 324. In turn, a display / touchscreen 332 external to the on-chip system 322 is coupled to the display controller 328 and the touchscreen controller 330. [0027] Figure 3 also indicates that a 334 video encoder, for example, an alternating phase line encoder (PAL), a sequential memory encoder (SECAM), or an encoder for the national television systems committee (NTSC) ), is coupled to the multi-core CPU 324. Additionally, a video amplifier 336 is coupled to the video encoder 334 and the display / touchscreen 332. In addition, a video port 338 is coupled to the video amplifier 336 As shown in Figure 3, a universal serial bus (USB) controller 340 is attached to the multi-core CPU 324. In addition, a USB port 342 is attached to the USB controller 340. A 344 memory and an identity module card (SIM) number 346 can also be coupled to the multi-core CPU 324. Additionally, as illustrated in Figure 3, a digital camera 348 can be coupled to the multi-core CPU 324. In an illustrative aspect, the digital camera 348 is a disp camera load-coupled oscillator (CCD) or a complementary metal oxide semiconductor (CMOS) camera. [0028] As also illustrated in Figure 3, a stereo audio CODEC 350 can be coupled to the multi-core CPU 324. Furthermore, an audio amplifier 352 can be coupled to the stereo audio CODEC 350. In an illustrative aspect, a first stereo speaker 354 and a second stereo speaker 356 are coupled to the audio amplifier 352. Figure 3 illustrates that a microphone amplifier 358 can also be coupled to the stereo audio CODEC 350. Additionally, a microphone 360 can be coupled to the amplifier microphone 358. In a particular aspect, a frequency modulation (FM) radio tuner 362 can be coupled to the stereo audio CODEC 350. In addition, an FM antenna 364 is coupled to the FM radio tuner 362. Additionally, headphones stereo earphones 366 can be coupled to the stereo audio CODEC 350. [0029] Figure 3 also indicates that a radio frequency (RF) transceiver 368 can be coupled to the multi-core CPU 324. An RF switch 370 can be coupled to the RF transceiver 368 and an RF antenna 372. As illustrated in Figure 3, a keyboard 374 can be coupled to the multi-core CPU 324. In addition, a mono headset with a microphone 376 can be coupled to the multi-core CPU 324. Additionally, a vibrating device 378 can be coupled to the multi-core CPU 324. Figure 3 also illustrates that a power supply 380 can be coupled to the on-chip system 322. In one particular aspect, the power supply 380 is a direct current (DC) power supply ) that supplies power to the various components of the PCD 320 that require power. Additionally, in a particular aspect, the power supply is a rechargeable DC battery or a DC power source that is derived from an alternating current (AC) to DC transformer that is connected to an AC power source. [0030] Figure 3 also indicates that PCD 320 can also include a 388 network card that can be used to access a data network, for example, a local area network, a personal area network, or any other network . The 388 network card can be a Bluetooth network card, a WiFi network card, a personal area network card (PAN), a personal area network ultra low power technology network card (PeANUT), or any other network card well known in the art. In addition, network card 388 can be incorporated into a chip, that is, network card 388 may be a complete solution on a chip, and may not be a separate network card 388. [0031] As shown in Figure 3, the display / touch screen 332, the video port 338, the USB port 342, the camera 348, the first stereo speaker 354, the second stereo speaker 356, the microphone 360 , the FM antenna 364, the stereo headphones 366, the RF switch 370, the RF antenna 372, the keyboard 374, the mono headset 376, the vibrator 378, and the power supply 380 are external to the system on-chip 322. [0032] In one particular aspect, one or more steps of the method described here can be stored in memory 344 as computer program instructions. These instructions can be executed by the multicore CPU 324 in order to carry out the methods described here. In addition, the multi-core CPU 324, memory 344, or a combination of these can serve as a means to perform one or more of the method steps described here in order to control the power for each CPU, or core, within the CPU. multiple cores 324. [0033] With reference to Figure 4, a processing system is illustrated and is generally referred to as 400. In a particular aspect, the processing system 400 can be incorporated into the PCD 320 described above in conjunction with Figure 3. As illustrated, the processing system 500 may include a multi-core central processing unit (CPU) 402 and a memory 404 connected to the multi-core CPU 402. The multi-core CPU 402 may include a zero core 410, a first core 412, and a Nésimo nucleus414. Core zero 410 may include a voltage scaling algorithm and dynamic zero clock (DCVS) 416 running on it. The first core 412 may include a first DCVS algorithm 417 executed therein. Additionally, the Nésimo414 kernel can include a DCVS Nésimo418 algorithm running on it. In a particular aspect, each DCVS 416, 417, 418 algorithm can be run independently on a respective core 410, 412, 414. [0034] Furthermore, as illustrated, memory 404 may include an operating system 420 stored therein. The operating system 420 may include a programmer 422 and programmer 422 may include a first execution row 424, a second execution row 426, and a Nésimafil from execution 428. Memory 404 may also include a first application 430, a second application 432, and a Nth application 434 stored in it. [0035] In a particular aspect, the application 430, 432, 434 can send one or more tasks 436 to the operating system 420 to be processed in cores 410, 412, 414 within the multi-core CPU 402. Tasks 436 can be processed, or executed, as single tasks, sequences, or a combination of these. In addition, programmer 422 can program tasks, sequences, or a combination of them to run within the multi-core CPU 402. Additionally, programmer 422 can place tasks, sequences, or a combination of them in execution queues 424, 426, 428. Cores 410, 412, 414 can retrieve tasks, sequences or a combination of them from execution queues 424, 426, 428, as instructed, for example, by operating system 420 for processing, or execution, of these tasks and sequences in cores 410, 412, 414. [0036] Figure 4 also illustrates that memory 404 may include a parallelism monitor 440 and a multicore processor controller (MP) 442 stored therein. Parallelism monitor 440 can be connected to operating system 420 and controller MP 442. Specifically, parallelism monitor 440 can be connected to programmer 422 within operating system 420. As described here, parallelism monitor 440 can monitor load working in cores 410, 412, 414 and the MP 442 controller can control the power for cores 410, 412, 414, as described below. In a particular aspect, when executing one or more of the method steps, for example, as computer program instructions, described here, the parallelism monitor 440, the MP controller 442, or a combination thereof can serve as a means to dynamically control power to cores 410, 412, 414 within the multi-core CPU 402. [0037] In a particular dual-core aspect, during operation, the MP 442 controller can receive information from the 440 parallelism monitor. The information can be a total system load. Furthermore, the information can be an average of the degree of parallelization in the workload. Based on the information, the MP 442 controller can determine whether a single core or two cores should be powered. In addition, the MP 442 controller can send a control signal to the multi-core CPU 402. The control signal can indicate whether to turn the additional cores on or off. In the dual-core example, the MP 442 controller can include four threshold values to control the decision to turn the cores on or off. The four limit values can include a number of ready-to-run strings in the OS programmer's queue to trigger an active kernel, Nw; a length of time for which the Nw has been exceeded to confirm the inactivity of the nucleus, Tw; a number of ready-to-run sequences in the OS programmer to trigger an inactive core, Ns; and a length of time for which the Ns has been exceeded to confirm the inactivity of the nucleus, Ts. [0038] Starting with a single active core, for example, the zero core 410, when the average execution of the degree of parallelism in the zero core 410 workload corresponds to or exceeds Nw for a duration of at least Tw, the controller of MP 442 can wake up a second core, for example, the first core 412. Conversely, when both cores, for example, the zero core 410 and the first core 412, are active and when the degree of parallelism in the workload falls below Ns for at least a duration of Ts, the MP controller 442 may decide to put the second nucleus, for example, the first nucleus 412, at rest. [0039] In a particular aspect, the limit parallelism sustained through time Tw implies that the single nucleus is saturated. In addition, the cores can be started at the most energy-efficient (VF) frequency and voltage operating point. In a particular aspect, two cores operating at an ideal VF offer more than one million Dhrystone instructions per second (DMIPS) than a single core operating at a maximum VF. In a dual-core aspect, two independent DCVS algorithms can adapt asymmetric workloads and in some cases, heterogeneous cores. In addition, in a dual-core aspect, the two cores must remain active during multi-task workloads in order to avoid a double performance penalty. In addition, when the parallelism falls below Ns for the prescribed time Ts, the second core must be de-energized and not put on hold. In a particular aspect, placing the second core on hold can increase energy leakage and can also reduce performance. [0040] The ideal values of the parameters, Nw, Tw, Ns, and Ts may depend on the exact power consumption characteristics of the 400 system. However, in one aspect, the values can be as follows: Nw = 1,2 ; Tw = 40 milliseconds (ms); Ns = 0.8; and Ts = 80 ms. [0041] In this particular aspect, Nw = 1,2 can ensure sustained parallelism before the second core is agreed. Ns = 0.8 can ensure a sustained absence of parallelism before the second core is put to rest. Ts = 80 ms is based on a system power collapse limit, 400 ms. Tw = 40 ms is half of Ts to improve the response to multiple cores. [0042] Figure 5 illustrates a first aspect of a method for controlling energy within a multi-core processor. The method is generally referred to as 500. Method 500 starts at block 502 with the initialization of the circuit in which, during operation, a device having a multi-core processor, the successive steps can be performed. In block 504, a power controller can dynamically infer a degree of workload parallelism within the CPUs, or cores, for example, when monitoring an operating system state. Moving to block 506, at least partially based on the degree of workload parallelism, the power controller can turn the cores on or off. In other words, the power controller can turn the cores on or off based on the workload. [0043] In decision 508, the power controller can determine whether the device is turned off. If the device is turned off, the method can be terminated. Otherwise, if the device remains on, method 500 can return to block 504 and method 500 can continue as described. [0044] Referring now to Figure 6, a second aspect of a method for controlling energy within a multi-core processor is illustrated and is generally referred to as 600. Method 600 begins at block 602 with the initialization of the circuit in which during operation of a device having a multi-core processor, successive steps can be performed. In block 604, a controller, for example, a parallelism monitor, can monitor the length of all ready-to-run queues of the OS programmer in order to determine a degree of workload parallelism within the CPUs, or cores. In a particular aspect, the parallelism monitor can be a software program residing in a device memory. Additionally, in a first aspect, the programmer's ready-to-run queue is a list of current sequence tasks that are available for programming on one or more CPUs. Some multicore systems may have only a single ready-to-run queue. rotate. Other multi-core systems can have multiple ready-to-run queues. Regardless of the number of ready-to-run queues at any one time, the total number of tasks, sequences, or a combination of these waiting in these queues, plus a number of tasks, sequences, or a combination of these currently running, can be an approximation of degree of parallelism in the workload. [0045] Moving to block 606, at least partially based on the degree of workload parallelism, the parallelism monitor can turn the cores on or off. In other words, the parallelism monitor can turn the cores on or off based on the workload. [0046] In decision 608, the parallelism monitor can determine if the device is turned off. If the device is turned off, the method can be terminated. Otherwise, if the device remains on, method 600 can return to block 604 and method 600 can continue as described. [0047] Referring to Figure 7, a third aspect of a method for controlling energy within a multi-core processor is illustrated and is generally referred to as 700. Method 700 begins at block 702 with the initialization of the circuit in which during operation of a device having a multi-core processor, successive steps can be performed. In block 704, a parallelism monitor can periodically sample a ready-to-run queue length. For example, the parallelism monitor can sample the ready-to-run queue length every millisecond (1 ms). In block 706, the parallelism monitor can determine an execution average of the degree of parallelism in the workload. Move to block 708, at least partially based on the degree of workload parallelism, the parallelism monitor can turn the cores on or off. In other words, the parallelism monitor can turn the cores on or off based on the workload. [0048] In decision 710, the parallelism monitor can determine whether the device is turned off. If the device is turned off, the method can be terminated. Otherwise, if the device remains on, method 700 can return to block 704 and method 700 can continue as described. [0049] Figure 8 presents a fourth aspect of a method for controlling energy within a multi-core processor. The method is generally referred to as 800 and method 800 begins at block 802 with circuit initialization in which, during operation, a device having a multi-core processor, the successive steps can be performed. In block 804, a parallelism monitor can receive a callback from the operating system (OS) whenever information is added to or removed from the OS programmer's execution queue. Additionally, in block 806, the parallelism monitor can determine an average of the degree of parallelism in the workload of the CPUs, or cores. [0050] Move to block 808, at least partially based on the degree of workload parallelism, the parallelism monitor can turn the cores on or off. In other words, the parallelism monitor can turn the cores on or off based on the workload. In decision 810, the parallelism monitor can determine whether the device is turned off. If the device is turned off, the method can be terminated. Otherwise, if the device remains on, method 800 can return to block 804 and method 800 can continue as described. [0051] Referring now to Figures 9 to 12, a fifth aspect of a method for controlling energy within a multi-core processor is illustrated and is generally referred to as 900. Method 900 begins at block 902 with the circuit initializing at which when a device having a multi-core processor is powered up, the following steps can be performed. In block 904, a zero core can be connected, that is, energized. In block 905, a DCVS zero algorithm can be executed locally at the zero core. Additionally, in block 906, one or more tasks, or sequences, can be performed at the zero core. [0052] Moving to decision 908, a multi-core processor (MP) controller can determine whether the device is turned off. If so, method 900 can be terminated. Otherwise, if the device remains on, method 900 can move to block 910 and the MP controller can receive an average execution degree of parallelism in the zero core workload from a parallelism monitor. In a particular aspect, at any given time, the total number of tasks, sequences, or a combination of these, waiting in the ready-to-run queues of an operating system (OS) plus the number of tasks currently running can be an approximation of degree of parallelism in the core workload. [0053] In decision 912, the PM controller can determine whether the degree of parallelism is equal to a first awakening condition. In a particular aspect, the first awakening condition can be a threshold value associated with the degree of parallelism in the core workload. For example, the threshold value can be a predetermined number of ready-to-run sequences in the OS programmer queues and if the parallelism is greater than or equal to this threshold value, the first awakening condition can be satisfied. [0054] Returning to decision 912, if the degree of parallelism is not equal to a first awakening condition, method 900 can return to block 910 and method 900 can continue as described here. Otherwise, if the degree of parallelism is equal to a first wake-up condition, method 900 can move to block 914 and the PM controller can determine a length of time for the first wake-up condition to be satisfied. In decision 916, the PM controller can determine whether the time duration is equal to a first confirmed wake-up condition. In a particular aspect, the first confirmed awakening condition can be a timeout value and if the length of time for which the first awakening condition is greater than or equal to the limit value, the first confirmed awakening condition can be satisfied . [0055] Returning to decision 916, if the length of time for which the first awakening condition is met is not equal to a first confirmed awakening condition, method 900 can return to block 910 and method 900 can continue as described here. Conversely, if the first confirmed awakening condition is met, method 900 can move to block 918 and the MP controller can invoke the OS to energize a first core so that two cores, that is, the zero core and the first core, are running and executing sequences and tasks. In block 920, the MP controller can invoke the OS to add the first core to a set of programmable features available to the OS. Additionally, in block 922, a first DCVS algorithm can be executed locally in the first core. After that, method 900 can proceed to block 1002 of Figure 10. [0056] Moving now to the block 1002 of Figure 10, one or more tasks, sequences or a combination of these can be performed in the zero core and in the first core. In decision 1004, an MP controller can determine whether the device is turned off. If so, method 900 can be terminated. Otherwise, if the device remains on, method 900 can move to block 1006 and the MP controller can receive an average execution degree of degree of parallelism in the workload at the zero core and the first core from the parallelism monitor . In a particular aspect, at any time, the total number of tasks, sequences or a combination of these, waiting in the ready-to-run queues of an operating system (OS) plus the number of tasks currently running can be an approximation to the degree of parallelism in the workload in the cores. [0057] In decision 1008, the MP controller can determine whether the degree of parallelism is equal to a first rest condition. In a particular aspect, the first resting condition can be a limit value associated with the degree of parallelism in the workload in the core. For example, the limit value can be a minimum number of ready-to-run strings in the OS programmer queues and if the parallelism is less than or equal to this limit value, the first rest condition can be satisfied. [0058] Returning to decision 1008, if the degree of parallelism is not equal to the first resting condition, method 900 can proceed to block 1102 of Figure 11 and method 900 can continue as described here. Otherwise, if the degree of parallelism is equal to the first rest condition, method 900 can move to block 1010 and the MP controller can determine a length of time for the first rest condition to be satisfied. In decision 1012, the PM controller can determine whether the length of time is equal to a first confirmed resting condition. In a particular aspect, the first confirmed rest condition can be a timeout value and if the length of time for which the first rest condition is greater than or equal to the limit value, the first confirmed rest condition can be satisfied . [0059] Returning to decision 1012, if the length of time for which the first resting condition is satisfied is not equal to a first confirmed resting condition, method 900 can proceed to block 1102 of Figure 11 and the method 900 can continue as described here. Conversely, if the first confirmed resting condition is satisfied, method 900 can move to block 1014 and the MP controller can invoke the OS to save a current state of the first core. In block 1016, the MP controller can invoke the OS to de-energize the first core so that a core, that is, the zero core, is running and executing sequences and tasks. Additionally, at block 1018, the MP controller can invoke the OS to remove the first kernel from the set of programmable features available to the OS. After that, method 900 can return to block 906 of Figure 9 and method 900 can continue as described here. [0060] With reference now to Figure 11, in block 1102, the MP controller can receive an average of the degree of parallelism in the workload in the zero core and the first core from the parallelism monitor. In a particular aspect, at any given time, the total number of tasks, sequences or a combination of these, waiting in the ready-to-run queues of an operating system (OS) plus the number of tasks currently running can be an approximation to the degree of parallelism in the workload in the cores. In decision 1104, the PM controller can determine whether the degree of parallelism is equal to a Nésima awakening condition. In a particular aspect, the Nésima awakening condition can be a limit value associated with the degree of parallelism in the workload in the cores. For example, the limit value can be a maximum number of ready-to-run strings in the OS programmer's queues and if the parallelism is greater than or equal to this limit value, the Nésima awakening condition can be satisfied. [0061] Returning to decision 1104, if the degree of parallelism is not equal to the Nésima awakening condition, method 900 can return to block 1002 of Figure 10 and method 900 can continue as described here. Otherwise, if the degree of parallelism is equal to the Nésima awakening condition, method 900 can move to block 1106 and the PM controller can determine a length of time for which the Nésima awakening condition is satisfied. In decision 1108, the PM controller can determine whether the time duration is equal to a confirmed Nésima wake-up condition. In a particular aspect, the confirmed Nésima awakening condition can be a timeout value and if the length of time for which the Nésima awakening condition is greater than or equal to the limit value, the confirmed Nésima awakening condition can be satisfied. [0062] Return to decision 1108, if the length of time for which the Nésima awakening condition is satisfied is not equal to the confirmed Nésima awakening condition, method 900 can return to block 1002 of Figure 10 and method 900 can continue as described here. Conversely, if the confirmed Nésima awakening condition is satisfied, method 900 can move to block 1110 and the MP controller can invoke the OS to energize a Nésima nucleus so that N nuclei, that is, the zero nucleus, the first nucleus and the Nésima core, are running and executing sequences and tasks. In block 1112, the MP controller can invoke the OS to add the Nésimaa core to a set of programmable features available to the OS. Additionally, in block 1114, a DCVS Nésima algorithm can be executed locally in the Nésima nucleus. Therefore, method 900 can proceed to block 1202 of Figure 12. [0063] In block 1202 of Figure 12, one or more tasks, sequences or a combination of these can be performed on the zero core, the first core and the Nth nucleus. In decision 1204, an MP controller can determine whether the device is turned off. If so, method 900 can be terminated. Otherwise, if the device remains on, method 900 can move to block 1206 and the MP controller can receive an average execution degree of parallelism in the workload in the zero core, in the first core, and in the Nésimo core from of the parallelism monitor. In a particular aspect, at any given time, the total number of tasks, sequences, or a combination of these, waiting in the ready-to-run queues of an operating system (OS) plus the number of tasks currently running can be an approximation for the degree of parallelism in the workload in the cores. [0064] In decision 1208, the PM controller can determine whether the degree of parallelism is equal to a Nésima rest condition. In a particular aspect, the Nésima rest condition can be a limit value associated with the degree of parallelism in the core workload. For example, the limit value can be a minimum number of ready-to-run sequences in the OS programmer's queues and if the parallelism is less than or equal to this limit value, the Nésima rest condition can be satisfied. [0065] Returning to decision 1208, if the degree of parallelism is not equal to the Nésima resting condition, method 900 can proceed to block 1202 and method 900 can continue as described here. Otherwise, if the degree of parallelism is equal to the Nésima rest condition, method 900 can move to block 1210 and the PM controller can determine a length of time for which the Nésima rest condition is satisfied. In decision 1212, the PM controller can determine whether the time duration is equal to a confirmed Nésima rest condition. In a particular aspect, the confirmed Nésima rest condition can be a timeout value and if the length of time for which the Nésima rest condition is greater than or equal to a limit value, the Nésima confirmed rest condition can be satisfied. [0066] Returning to decision 1212, if the length of time for which the Nésimafor rest condition is satisfied is not equal to the confirmed Nésima rest condition, method 900 can return to block 1202 and method 900 can continue as described on here. Conversely, if the Nésima confirmed resting condition is satisfied, method 900 can move to block 1214 and the MP controller can invoke the OS to save a current state of the first core. In block 1216, the MP controller can invoke the OS to shut down the Nth core so that N minus a few cores, for example, the zero core, and the first core (if N is 2 and a second core is off), are running and running sequences and tasks. Additionally, at block 1218, the MP controller can invoke the OS to remove the core Nésimodo set of programmable features available to the OS. After that, method 900 can return to block 1002 of Figure 10 and method 900 can continue as described here. [0067] Referring now to Figure 13, a test method for a multi-core processor is illustrated and is generally referred to as 1300. As illustrated, method 1300 can start at block 1302 where a test program can be created. The test program can include a steady-state workload with varying degrees of parallelism that would cause a plurality of cores to energize and de-energize depending on the degree of parallelism, as described here. [0068] Moving to block 1304, the test program can be loaded on a wireless device that includes a multi-core processor. In block 1306, a plurality of cores can be monitored on the wireless device. For example, the on / off status of the core for each core can be monitored. The on / off state can be monitored by monitoring the energy in each core, by monitoring the total energy consumed, the speed at which workloads are completed, or a combination of these. [0069] In block 1308, the test program can be run on the wireless device. Furthermore, in Decision 1310, it can be determined whether the cores within the wireless device respond correctly to the execution of the test program. In other words, it can be determined whether the cores are being energized / de-energized correctly in response to the execution of the test program. In decision 1310, if the cores do not respond correctly to the execution of the test program, method 1300 can move to block 1312 and a failure result can be indicated. The 1300 method can then be terminated. [0070] In decision 1310, if the cores do not respond correctly to the execution of the test program, the method can proceed to block 1314 and a positive result can be indicated. After that, method 1300 can be terminated. [0071] Figure 14 illustrates a sixth aspect of a method for dynamic power control within a multi-core CPU. The method is generally referred to as 1400. Starting at block 1402, a controller can determine a run queue value for a zero core. The execution queue value can indicate the workload for the zero core. In block 1404, the controller can determine an operating frequency for the zero core. In addition, in block 1406, the controller can determine a percentage of utilization for the zero core. In a particular aspect, the utilization percentage for the zero core can be the current operating frequency divided by the maximum operating frequency for the zero core. In block 1408, the controller can determine an inactive percentage for the zero core. [0072] By moving to block 1410, the controller can determine a value of the execution queue for a Nésimo core. In block 1412, the controller can determine an operational frequency for the Nésimo core. Additionally, in block 1414, the controller can determine a utilization percentage for the Nésimo core. In block 1416, the controller can determine an inactive percentage for the Nésimo core. [0073] By moving to block 1418, the controller can determine a load value for the system. The load value can be determined based on the execution queue value for the zero core, the execution queue value for the Nésimo core, the operating frequency of the zero core, the operating frequency of the Nésimo core, the percentage of use of the nucleus Nésimo, the percentage of utilization of the nucleus Nésimo, the percentage inactive for the nucleus zero, the percentage inactive for the nucleus Nésimo, or any combination of these. [0074] In a particular aspect, the charge value can be determined from the following formula: where LV = load value; RQ0 = a run queue value for core zero; IP0 = an inactive percentage for the zero core; UP0 = a percentage of utilization for the zero core; RQN = an execution queue value for the Nth nucleus; IPN = an inactive percentage for the Nésimo nucleus; and UPN = a percentage of utilization for the Nésimo core. [0075] In block 1420, one or more cores can be turned on or off based on the load value. It can be determined whether the charge value corresponds to a predetermined condition in order to determine whether to turn on or off one or more cores. For example, the load value can be compared to a limit and if the load value exceeds the limit, one or more cores can be turned on or off. For example, if there were two cores operating and the indicated load value of the two cores operating at or close to capacity, a third core can be connected and the workload can be dispersed between the three cores. Additionally, as the load value decreases below another limit indicating that it has a third operating core that is wasting energy, the third core can be shut down and the workload can be dispersed across the remaining two cores. In another aspect, the load value may indicate a current number of cores that must be running in order to provide the most efficient operation of the system. [0076] In a particular aspect, the controller can maintain historical data regarding the operation of the system and use historical data, the controller can implement a filter, for example, an IIR filter, the controller can implement an average motion function, or the controller can implement a combination of these. An average exemplary motion function is illustrated below: N = f (runQ0, run Q1, N1, N2, N3) = 2 if ((runQ0 + runQ1) + N1 + N2 + N3) / 4> 1, e = 1 if ((runQ0 + ruQ1) + N1 + N2 + N3) / 4 <= 1 where runQ0 = a run queue value for a zero core; runQ1 = a run queue value for a first core; and N1, N2, N3 = N values for the last three historical periods. [0077] It should be understood that the method steps described here do not necessarily have to be carried out in the order described. Additionally, the terms "later", "then", "next", etc. they should not limit the order of the stages. These words are simply used to guide the reader through the description of the method steps. In addition, the methods described here are described as executable on a portable computing device (PCD). The PCD can be a mobile phone device, a portable digital assistant device, a smartbook type computing device, a netbook type computing device, a laptop type computing device, a desktop type computing device, or a combination of these. [0078] With the configuration described here, the system and method described can reduce power consumption within a multi-core CPU by energizing additional CPU cores when there is the possibility of current acceleration due to workload parallelism. While the degree of parallelism may not be known in advance, the degree of parallelism can be inferred by looking at an execution queue length of the operating system programmer. Based on the degree of parallelism inferred, additional cores can be energized or de-energized when necessary. [0079] Unlike traditional systems, which energize all CPU cores symmetrically, that is, all on or off, the present system and method can energize and de-energize the CPU cores asymmetrically. In other words, one core can be energized while another is de-energized. In addition, as the workload increases and has sufficient parallelism, the second core can be energized. [0080] Additionally, the system and methods described here can dynamically adapt the number of energized cores to the current dynamic parallelism offered in the workload. This can save substantial energy. In addition, the system and method do not require developers to communicate the parallelism in their workloads in any special way. Applications may not need to be modified in any way and applications may be developed in a typical way. In addition, the present system and methods are compatible with existing applications and devices. [0081] In a particular aspect, the information for an MP controller is the number of ready-to-run sequences in the programmer's queue. It can be appreciated that other information that indicates parallelism in the workload can be used. However, an inactive / busy core indicator, which does not indicate parallelism, may not be enough information for the MP controller. For example, a CPU core may be 100% busy, but running on a single sequence workload. In this case, energizing the second core does not help the performance of the single sequence in any way. In fact, it can degrade performance by introducing the overhead required to power the second core. Worse, energizing a second core for a single sequence workload can introduce energy leakage with a large leak from the second core. [0082] Accordingly, in a particular aspect, it may be undesirable to energize the second core without guaranteeing that there is sufficient parallel work to do this. In an instant sense, working in parallel is only possible when there are two or more strings that are ready to run in the OS programmer's queues. [0083] In normal operation, in a dual-core example, the system can start with a DCVS algorithm operating on the zero CPU core, while a first CPU core remains dormant. In this mode, the system can respond to instantaneous transient loads by increasing the frequency of the CPU core to zero. The system can remain in single-core mode as long as there are insufficient ready-to-run sequences. [0084] However, once the ready-to-run limit Nw has been exceeded for a set amount of time, the zero CPU core can be implicitly saturated and there is also clearly a parallel workload available for the first core of CPU. A multi-core processor (MP) controller can invoke the OS to activate the first CPU core and add the first CPU core to the OS set of programmable resources. The MP controller can also start the first CPU core at the optimal frequency and voltage point, that is, the highest frequency at the lowest voltage, and activate the local DCVS for the first CPU core. The MP controller can optionally also reconfigure the frequency of the zero CPU core to the ideal frequency and voltage point. Otherwise, the MP controller may leave the CPU core frequency zero in the current configuration. [0085] Both cores can now operate with individually executed DCVS algorithms. With sustained parallel workloads, it may be likely that both cores will eventually reach the maximum frequency. However, there may be very brief slowdowns in the load that can allow the cores to partially decrease from the maximum frequency. However, such slowdowns are not possible without also reducing the number of strings that are ready to run to 0. [0086] Once enough slowdowns have occurred, causing the average number of ready-to-run sequences to fall below the Ns limit for a long enough duration, the MP controller can invoke the OS to save any suitable state from the first CPU core and remove it from its programmable set. Subsequently, the first CPU core can be safely de-energized. With the power of the first CPU core turned off, the system can return to a single core operating mode. [0087] In one or more illustrative aspects, the functions described can be implemented in hardware, software, firmware, or any combination of these. If implemented in software, functions can be stored in or transmitted as one or more instructions or code in a computer program product such as a machine-readable medium, that is, a computer-readable medium. The computer-readable medium includes both the computer storage medium and the communication medium including any medium that facilitates the transfer of a computer program from one place to another. A storage medium can be any available medium that can be accessed by a computer. By way of example, and not limitation, such a computer-readable medium may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to carry or store a desired program code in the form of instructions or data structures and which can be accessed by a computer. In addition, any connection is properly called a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies, such as infrared, radio and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. Disk and disk, as used here, include compact disk (CD), laser disk, optical disk, digital versatile disk (DVD), floppy disk and Blu-ray disk where disks normally reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included in the scope of computer-readable media. [0088] Although the selected aspects have been illustrated and described in detail, it will be understood that the various substitutions and changes can be made without departing from the inventive concept and scope of the present invention, as defined by the appended claims.
权利要求:
Claims (11) [0001] 1. Method for dynamic energy control within a multi-core central processing unit (CPU), the method characterized by the fact that it comprises: receiving (910) a degree of parallelism in a zero-core workload (410 ), in which the degree of parallelism comprises a total number of tasks waiting in one or more queues ready for execution by an operating system programmer plus a number of tasks currently executing in core zero (410); determining (912) whether the degree of parallelism in the zero core workload (410) is equal to a first awakening condition, where the first awakening condition is satisfied when the degree of parallelism reaches or exceeds a threshold value; and energizing a first core (412) based at least in part on the degree of parallelism determined being equal to the first awakening condition and initially operating the zero core (410) and the first core (412) below an operational frequency and voltage point maximum. [0002] 2. Method according to claim 1, characterized by the fact that it additionally comprises: determining (914) a length of time for which the first awakening condition is satisfied when the degree of parallelism in the zero core workload ( 410) is equal to the first awakening condition; and determining (916) whether the time duration is equal to a first confirmed awakening condition. [0003] 3. Method according to claim 2, characterized by the fact that it further comprises: invoking (918) an operating system to energize the first core (412) when the time duration is equal to the first confirmed awakening condition. [0004] 4. Method according to claim 3, characterized by the fact that it additionally comprises: invoking (920) the operating system to add the first core (412) to a set of programmable resources. [0005] 5. Method, according to claim 4, characterized by the fact that it additionally comprises: receiving (1006) a degree of parallelism in a workload in the zero core (410) and the first core (412); and determining (1008) whether the degree of parallelism in the workload in the zero core (410) and the first core (412) is equal to a first resting condition. [0006] 6. Method according to claim 5, characterized by the fact that it further comprises: determining (1010) a length of time for which the first resting condition is satisfied when the degree of parallelism in the workload in the zero core ( 410) and in the first nucleus (412) is equal to the first resting condition; and determining (1012) whether the length of time for which the first resting condition is satisfied is equal to a first confirmed resting condition. [0007] 7. Method, according to claim 6, characterized by the fact that it additionally comprises: invoking (1014) the operating system to save the current state of the first core (412), when the length of time for which the first condition of rest is satisfied is equal to the first rest condition. [0008] 8. Method according to claim 7, characterized by the fact that it additionally comprises: invoking (1016) the operating system to de-energize the first core (412). [0009] 9. Method according to claim 8, characterized by the fact that it additionally comprises: invoking (1018) the operating system to remove the first core (412) from the set of programmable resources. [0010] 10. Wireless device characterized by the fact that it comprises: mechanisms for receiving a degree of parallelism in a zero-core workload (410) from a multi-core central processing unit (402) of the wireless device, in which the degree of parallelism comprises a total number of tasks waiting in one or more queues ready for execution by an operating system programmer plus a number of tasks currently running at core zero (410); mechanisms for determining whether the degree of parallelism in the zero core workload (410) is equal to a first awakening condition, where the first awakening condition is satisfied when the degree of parallelism reaches or exceeds a threshold value; and mechanisms for energizing a first core (412) based at least in part on the degree of parallelism determined being equal to the first awakening condition and initially operating core zero (410) and the first core (412) below an operating point of maximum frequency and voltage. [0011] 11. Computer-readable memory, characterized by the fact that it comprises instructions stored therein, the instructions being executable by a computer to perform the steps of the method as defined in any one of claims 1 to 9.
类似技术:
公开号 | 公开日 | 专利标题 BR112012014308B1|2021-01-19|method for power control of central processing unit, wireless device and computer-readable memory US8650426B2|2014-02-11|System and method for controlling central processing unit power in a virtualized system JP6017395B2|2016-11-02|Suspend postponed US9081558B2|2015-07-14|System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on tempature TWI484329B|2015-05-11|Dynamic core switching BR112012014160B1|2021-02-23|METHOD FOR CONTROLLING CORE CLOCKS IN A MULTINUCLEUS CENTRAL PROCESSING UNIT, WIRELESS DEVICE AND COMPUTER-READABLE MEMORY BR112012022431B1|2021-08-03|METHOD AND DEVICE TO RUN A PLURALITY OF QUANTIZED CHAINS IN A PLURALITY OF DISCRETE CHAIN BUCKS AND COMPUTER-READABLE MEMORY TW201333675A|2013-08-16|Report updated threshold level based on parameter Steigerwald et al.2011|Developing green software TW201512836A|2015-04-01|Throttling of application access to resources JP5764150B2|2015-08-12|Method and computer for transition from power-on state to power-saving state JP2000039937A|2000-02-08|Computer system and its power-saving control method EP2972826B1|2021-06-23|Multi-core binary translation task processing
同族专利:
公开号 | 公开日 KR101409055B1|2014-07-02| CN102656539B|2015-09-09| EP2513745A1|2012-10-24| JP5893568B2|2016-03-23| JP2013513891A|2013-04-22| US20110145615A1|2011-06-16| KR20120105523A|2012-09-25| EP2513745B1|2018-04-04| CN102656539A|2012-09-05| US9563250B2|2017-02-07| BR112012014308A2|2016-07-05| WO2011084260A1|2011-07-14|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US187775A|1877-02-27|Improvement in shoe-tips | US36878A|1862-11-04|Improvement in machines for making brace-jaws for steam-boilers | US115495A|1871-05-30|Improvement in fme-plugs | JPS6226732B2|1982-06-30|1987-06-10|Fujitsu Ltd| JPH0351902A|1989-07-20|1991-03-06|Tokyo Electric Co Ltd|Data processor| US5644769A|1993-06-14|1997-07-01|Matsushita Electric Industrial Co., Ltd.|System for optimizing program by virtually executing the instruction prior to actual execution of the program to invalidate unnecessary instructions| JPH086681A|1994-04-18|1996-01-12|Hitachi Ltd|Power saving control system| JP2770760B2|1995-01-04|1998-07-02|日本電気株式会社|Power distribution multiprocessor| JPH10268963A|1997-03-28|1998-10-09|Mitsubishi Electric Corp|Information processor| JPH11143839A|1997-11-14|1999-05-28|Nec Corp|System and method for load distribution control| JPH11184554A|1997-12-24|1999-07-09|Mitsubishi Electric Corp|Clock control type information processor| US6230183B1|1998-03-11|2001-05-08|International Business Machines Corporation|Method and apparatus for controlling the number of servers in a multisystem cluster| US20030123253A1|2001-05-08|2003-07-03|Krietzman Mark Howard|Multi-layered thin flat illuminator| KR100613201B1|2000-08-28|2006-08-18|마이크로코넥트 엘엘씨|Measuring method for cpu usage| TW521177B|2000-08-31|2003-02-21|Primarion Inc|Apparatus and system for providing transient suppression power regulation| KR100487543B1|2000-09-01|2005-05-03|엘지전자 주식회사|Cpu scheduling method| US6718474B1|2000-09-21|2004-04-06|Stratus Technologies Bermuda Ltd.|Methods and apparatus for clock management based on environmental conditions| JP2002099433A|2000-09-22|2002-04-05|Sony Corp|System of computing processing, control method system for task control, method therefor and record medium| US7596709B2|2000-12-30|2009-09-29|Intel Corporation|CPU power management based on utilization with lowest performance mode at the mid-utilization range| US6829713B2|2000-12-30|2004-12-07|Intel Corporation|CPU power management based on utilization with lowest performance mode at the mid-utilization range| US7017060B2|2001-03-19|2006-03-21|Intel Corporation|Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down| US6901522B2|2001-06-07|2005-05-31|Intel Corporation|System and method for reducing power consumption in multiprocessor system| US7058824B2|2001-06-15|2006-06-06|Microsoft Corporation|Method and system for using idle threads to adaptively throttle a computer| US6804632B2|2001-12-06|2004-10-12|Intel Corporation|Distribution of processing activity across processing hardware based on power consumption considerations| US7318164B2|2001-12-13|2008-01-08|International Business Machines Corporation|Conserving energy in a data processing system by selectively powering down processors| US6978389B2|2001-12-20|2005-12-20|Texas Instruments Incorporated|Variable clocking in an embedded symmetric multiprocessor system| JP2003256067A|2002-03-01|2003-09-10|Mitsubishi Electric Corp|Power saving control system, power saving control method, program and recording medium| JP2003271401A|2002-03-18|2003-09-26|Fujitsu Ltd|Microprocessor having load monitoring function| US7634668B2|2002-08-22|2009-12-15|Nvidia Corporation|Method and apparatus for adaptive power consumption| US6908227B2|2002-08-23|2005-06-21|Intel Corporation|Apparatus for thermal management of multiple core microprocessors| US7194385B2|2002-11-12|2007-03-20|Arm Limited|Performance level setting of a data processing system| US7240223B2|2003-05-07|2007-07-03|Apple Inc.|Method and apparatus for dynamic power management in a processor system| GB2403823B|2003-07-08|2005-09-21|Toshiba Res Europ Ltd|Controller for processing apparatus| US7134031B2|2003-08-04|2006-11-07|Arm Limited|Performance control within a multi-processor system| JP4549652B2|2003-10-27|2010-09-22|パナソニック株式会社|Processor system| US7107187B1|2003-11-12|2006-09-12|Sprint Communications Company L.P.|Method for modeling system performance| JP3884427B2|2003-12-10|2007-02-21|東芝ソリューション株式会社|Computer system and resource allocation program| US7133806B2|2004-05-13|2006-11-07|Ittiam Systems Ltd|Method and apparatus for measurement of processor-utilization| US7219245B1|2004-06-03|2007-05-15|Advanced Micro Devices, Inc.|Adaptive CPU clock management| US7401240B2|2004-06-03|2008-07-15|International Business Machines Corporation|Method for dynamically managing power in microprocessor chips according to present processing demands| KR100716730B1|2004-06-11|2007-05-14|삼성전자주식회사|Method for decreasing the power consumption in cpu idle-state and mobile device using the same| JP3805344B2|2004-06-22|2006-08-02|株式会社ソニー・コンピュータエンタテインメント|Processor, information processing apparatus and processor control method| US7739527B2|2004-08-11|2010-06-15|Intel Corporation|System and method to enable processor management policy in a multi-processor environment| US7761874B2|2004-08-13|2010-07-20|Intel Corporation|Managing processing system power and performance based on utilization trends| US7711966B2|2004-08-31|2010-05-04|Qualcomm Incorporated|Dynamic clock frequency adjustment based on processor load| US7437581B2|2004-09-28|2008-10-14|Intel Corporation|Method and apparatus for varying energy per instruction according to the amount of available parallelism| US7543161B2|2004-09-30|2009-06-02|International Business Machines Corporation|Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system| US7370189B2|2004-09-30|2008-05-06|Intel Corporation|Method and apparatus for establishing safe processor operating points in connection with a secure boot| US7814485B2|2004-12-07|2010-10-12|Intel Corporation|System and method for adaptive power management based on processor utilization and cache misses| US7346787B2|2004-12-07|2008-03-18|Intel Corporation|System and method for adaptive power management| US7228446B2|2004-12-21|2007-06-05|Packet Digital|Method and apparatus for on-demand power management| US7369967B1|2004-12-27|2008-05-06|Sprint Communications Company L.P.|System and method for monitoring and modeling system performance| US7502948B2|2004-12-30|2009-03-10|Intel Corporation|Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores| US7467291B1|2005-02-28|2008-12-16|Sun Microsystems, Inc.|System and method for calibrating headroom margin| JP2006268166A|2005-03-22|2006-10-05|Fuji Xerox Co Ltd|Information processor, information processing method, and program| JP4082706B2|2005-04-12|2008-04-30|学校法人早稲田大学|Multiprocessor system and multigrain parallelizing compiler| US8225112B2|2005-07-14|2012-07-17|Nytell Software LLC|Using historic load profiles to dynamically adjust operating frequency and available power to a handheld multimedia device processor core| US7490254B2|2005-08-02|2009-02-10|Advanced Micro Devices, Inc.|Increasing workload performance of one or more cores on multiple core processors| US7548859B2|2005-08-03|2009-06-16|Motorola, Inc.|Method and system for assisting users in interacting with multi-modal dialog systems| US7904912B2|2005-08-30|2011-03-08|International Business Machines Corporation|Adaptive processor utilization reporting handling different processor frequencies| US7233188B1|2005-12-22|2007-06-19|Sony Computer Entertainment Inc.|Methods and apparatus for reducing power consumption in a processor using clock signal control| US7689838B2|2005-12-22|2010-03-30|Intel Corporation|Method and apparatus for providing for detecting processor state transitions| US7263457B2|2006-01-03|2007-08-28|Advanced Micro Devices, Inc.|System and method for operating components of an integrated circuit at independent frequencies and/or voltages| US7650527B2|2006-02-07|2010-01-19|Broadcom Corporation|MIPS recovery technique| US7574613B2|2006-03-14|2009-08-11|Microsoft Corporation|Scaling idle detection metric for power management on computing device| US20070260898A1|2006-05-03|2007-11-08|Edward Burton|Voltage regulator with suspend mode| US20080005591A1|2006-06-28|2008-01-03|Trautman Mark A|Method, system, and apparatus for dynamic thermal management| US7584369B2|2006-07-26|2009-09-01|International Business Machines Corporation|Method and apparatus for monitoring and controlling heat generation in a multi-core processor| JP4808108B2|2006-08-29|2011-11-02|パナソニック株式会社|Processor system| WO2008047179A1|2006-10-20|2008-04-24|Freescale Semiconductor, Inc.|Device having redundant core and a method for providing core redundancy| US7949887B2|2006-11-01|2011-05-24|Intel Corporation|Independent power control of processing cores| JP2008129846A|2006-11-21|2008-06-05|Nippon Telegr & Teleph Corp <Ntt>|Data processor, data processing method, and program| GB2445167A|2006-12-29|2008-07-02|Advanced Risc Mach Ltd|Managing performance of a processor| US7793125B2|2007-01-10|2010-09-07|International Business Machines Corporation|Method and apparatus for power throttling a processor in an information handling system| CN101241390B|2007-02-07|2011-04-13|华硕电脑股份有限公司|Multi- core processor efficiency regulation method| US7783906B2|2007-02-15|2010-08-24|International Business Machines Corporation|Maximum power usage setting for computing device| US7730340B2|2007-02-16|2010-06-01|Intel Corporation|Method and apparatus for dynamic voltage and frequency scaling| US7849349B2|2007-03-28|2010-12-07|Qimonda Ag|Reduced-delay clocked logic| JP4739271B2|2007-04-19|2011-08-03|株式会社富士通アドバンストエンジニアリング|Power supply control device, virtual server management system, power supply control method, and power supply control program| US7865751B2|2007-06-18|2011-01-04|Intel Corporation|Microarchitecture controller for thin-film thermoelectric cooling| US7902800B2|2007-07-13|2011-03-08|Chil Semiconductor Corporation|Adaptive power supply and related circuitry| JP4834625B2|2007-07-31|2011-12-14|株式会社東芝|Power management apparatus and power management method| US8356306B2|2007-07-31|2013-01-15|Hewlett-Packard Development Company, L.P.|Workload management controller using dynamic statistical control| US20090049314A1|2007-08-13|2009-02-19|Ali Taha|Method and System for Dynamic Voltage and Frequency Scaling | CN101414268A|2007-10-15|2009-04-22|南京大学|Method for managing processor hot plug on ARM MPCore processor| US7945804B2|2007-10-17|2011-05-17|International Business Machines Corporation|Methods and systems for digitally controlled multi-frequency clocking of multi-core processors| JP5433837B2|2007-12-05|2014-03-05|株式会社日立製作所|Virtual computer system, virtual computer control method, and program| US8024590B2|2007-12-10|2011-09-20|Intel Corporation|Predicting future power level states for processor cores| US20090150696A1|2007-12-10|2009-06-11|Justin Song|Transitioning a processor package to a low power state| JP4488072B2|2008-01-18|2010-06-23|日本電気株式会社|Server system and power reduction method for server system| US8245236B2|2008-02-27|2012-08-14|International Business Machines Corporation|Lock based moving of threads in a shared processor partitioning environment| JP4996519B2|2008-03-27|2012-08-08|パナソニック株式会社|Virtual multiprocessor, system LSI, mobile phone device, and virtual multiprocessor control method| US20090271646A1|2008-04-24|2009-10-29|Vanish Talwar|Power Management Using Clustering In A Multicore System| US8892916B2|2008-08-06|2014-11-18|International Business Machines Corporation|Dynamic core pool management| US8170845B2|2008-09-24|2012-05-01|International Business Machines Corporation|Method and apparatus for automatic performance modeling with load dependent service times and overheads| US8195962B2|2008-11-11|2012-06-05|Globalfoundries Inc.|Method and apparatus for regulating power consumption| US8261112B2|2008-12-08|2012-09-04|International Business Machines Corporation|Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency| CN101436098A|2008-12-24|2009-05-20|华为技术有限公司|Method and apparatus for reducing power consumption of multiple-core symmetrical multiprocessing system| US8245070B2|2008-12-30|2012-08-14|Intel Corporation|Method for optimizing voltage-frequency setup in multi-core processor systems| JP5091912B2|2009-05-21|2012-12-05|株式会社東芝|Multi-core processor system| US8924975B2|2009-07-23|2014-12-30|Empire Technology Development Llc|Core selection for applications running on multiprocessor systems based on core and application characteristics| US8689037B2|2009-12-16|2014-04-01|Qualcomm Incorporated|System and method for asynchronously and independently controlling core clocks in a multicore central processing unit| US8909962B2|2009-12-16|2014-12-09|Qualcomm Incorporated|System and method for controlling central processing unit power with guaranteed transient deadlines| US8650426B2|2009-12-16|2014-02-11|Qualcomm Incorporated|System and method for controlling central processing unit power in a virtualized system| US9104411B2|2009-12-16|2015-08-11|Qualcomm Incorporated|System and method for controlling central processing unit power with guaranteed transient deadlines| US9176572B2|2009-12-16|2015-11-03|Qualcomm Incorporated|System and method for controlling central processing unit power with guaranteed transient deadlines| US8775830B2|2009-12-16|2014-07-08|Qualcomm Incorporated|System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature| US20110145559A1|2009-12-16|2011-06-16|Thomson Steven S|System and method for controlling central processing unit power with guaranteed steady state deadlines| US9128705B2|2009-12-16|2015-09-08|Qualcomm Incorporated|System and method for controlling central processing unit power with reduced frequency oscillations|US8166319B2|2009-07-02|2012-04-24|Telefonaktiebolaget L M Ericsson |Methods and systems for use-case aware voltage selection| US20110145559A1|2009-12-16|2011-06-16|Thomson Steven S|System and method for controlling central processing unit power with guaranteed steady state deadlines| US8689037B2|2009-12-16|2014-04-01|Qualcomm Incorporated|System and method for asynchronously and independently controlling core clocks in a multicore central processing unit| US8775830B2|2009-12-16|2014-07-08|Qualcomm Incorporated|System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature| US8909962B2|2009-12-16|2014-12-09|Qualcomm Incorporated|System and method for controlling central processing unit power with guaranteed transient deadlines| US9104411B2|2009-12-16|2015-08-11|Qualcomm Incorporated|System and method for controlling central processing unit power with guaranteed transient deadlines| US9128705B2|2009-12-16|2015-09-08|Qualcomm Incorporated|System and method for controlling central processing unit power with reduced frequency oscillations| US8650426B2|2009-12-16|2014-02-11|Qualcomm Incorporated|System and method for controlling central processing unit power in a virtualized system| US9176572B2|2009-12-16|2015-11-03|Qualcomm Incorporated|System and method for controlling central processing unit power with guaranteed transient deadlines| KR101155202B1|2009-12-24|2012-06-13|포항공과대학교 산학협력단|Method for managing power for multi-core processor, recorded medium for performing method for managing power for multi-core processor and multi-core processor system for performing the same| EP2385440A1|2010-05-07|2011-11-09|ST-Ericsson SA|Method and system for controlling the operation of an electronic device| KR101770587B1|2011-02-21|2017-08-24|삼성전자주식회사|A method of hot plugging of multi-core processor and multi-core processor system| US9804893B2|2011-04-08|2017-10-31|Qualcomm Incorporated|Method and apparatus for optimized execution using resource utilization maps| US9086883B2|2011-06-10|2015-07-21|Qualcomm Incorporated|System and apparatus for consolidated dynamic frequency/voltage control| CN102955549B|2011-08-29|2016-06-29|华为技术有限公司|The method for managing power supply of a kind of multi-core CPU, system and CPU| KR20130040485A|2011-10-14|2013-04-24|삼성전자주식회사|Apparatus and method for controlling cpu in a portable terminal| JP5554358B2|2012-03-23|2014-07-23|株式会社東芝|Multiprocessor system and power control method| CN103150005A|2013-03-01|2013-06-12|福州瑞芯微电子有限公司|Multi-core structure for asymmetric low-power mobile device| CN104360727B|2013-08-28|2019-02-01|威盛电子股份有限公司|Microprocessor and the method for using its power saving| US9652022B2|2014-08-28|2017-05-16|Qualcomm Incorporated|System and method for providing dynamic quality of service levels based on coprocessor operation| US20160306416A1|2015-04-16|2016-10-20|Intel Corporation|Apparatus and Method for Adjusting Processor Power Usage Based On Network Load| DE102016116158A1|2015-08-31|2017-03-02|Samsung Electronics Co., Ltd.|A method of operating a CPU and methods of operating a system comprising the CPU| CN106055079B|2016-05-31|2017-11-24|广东欧珀移动通信有限公司|The management method and device of a kind of central processing unit| CN106227602A|2016-07-26|2016-12-14|张升泽|The distribution method being supported between multi core chip and system| US10303384B1|2017-11-28|2019-05-28|Western Digital Technologies, Inc.|Task readiness for queued storage tasks|
法律状态:
2019-01-08| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]| 2019-08-06| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]| 2020-05-12| B06A| Notification to applicant to reply to the report for non-patentability or inadequacy of the application [chapter 6.1 patent gazette]| 2020-07-21| B06I| Publication of requirement cancelled [chapter 6.9 patent gazette]|Free format text: ANULADA A PUBLICACAO CODIGO 6.1 NA RPI NO 2575 DE 12/05/2020 POR TER SIDO INDEVIDA. | 2020-11-10| B09A| Decision: intention to grant [chapter 9.1 patent gazette]| 2021-01-19| B16A| Patent or certificate of addition of invention granted|Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 19/01/2021, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US28695309P| true| 2009-12-16|2009-12-16| US61/286,953|2009-12-16| US12/944,140|2010-11-11| US12/944,140|US9563250B2|2009-12-16|2010-11-11|System and method for controlling central processing unit power based on inferred workload parallelism| PCT/US2010/058075|WO2011084260A1|2009-12-16|2010-11-24|System and method for controlling central processing unit power based on inferred workload parallelism| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|